package org.edu.modules.stu.stu.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.edu.common.base.BaseEntity;
import java.sql.Date;
import org.hibernate.validator.constraints.Length;

import java.io.Serializable;

/**
 * entity-请假信息表
 */
@TableName("ve_stu_leave")
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="请假信息表对象", description="ve_stu_leave")
public class VeStuLeave extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableField
    @ApiModelProperty(value = "学生id")
        private Integer stuId;

    @TableField
    @ApiModelProperty(value = "学生姓名")
    @Length(max = 30)
        private String name;

    @TableField
    @ApiModelProperty(value = "学生学号")
    @Length(max = 30)
        private String code;

    @TableField
    @ApiModelProperty(value = "专业id")
        private Integer specId;

    @TableField
    @ApiModelProperty(value = "班级id")
        private Integer bjId;

    @TableField
    @ApiModelProperty(value = "请假类型;1事假、2病假、3丧假")
        private Integer type;

    @TableField
    @ApiModelProperty(value = "开始时间")
        @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
        private Date startTime;

    @TableField
    @ApiModelProperty(value = "结束时间")
        @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
        private Date endTime;

    @TableField
    @ApiModelProperty(value = "申请时间")
        @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
        private Date applyTime;

    @TableField
    @ApiModelProperty(value = "审核人")
    @Length(max = 32)
        private String auditUserId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String auditUserName;

    @TableField
    @ApiModelProperty(value = "审核状态;0待审核 1通过2未通过")
        private Integer auditStatus;

    @TableField
    @ApiModelProperty(value = "")
        @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
        private Date auditTime;

    @TableField
    @ApiModelProperty(value = "未通过原因")
    @Length(max = 65535)
        private String auditReason;

    @TableField
    @ApiModelProperty(value = "请假原因")
    @Length(max = 65535)
        private String content;
}
